package dlg.code.command.player;

import dlg.code.command.player.action.IAction;

import java.util.ArrayList;
import java.util.List;

/**
 * 命令模式
 * 请求与执行解耦
 * 与桥接模式不同的是，桥接模式扩展的是两端的维度。命令模式扩展的是中间的控制部分
 */
public class CommandLine {

    /**
     * 批量命令
     */
    private List<IAction> actions = new ArrayList<>();

    public void addAction(IAction action) {
        actions.add(action);
    }

    public void execute(IAction action) {
        action.execute();
    }

    public void executeBatch() {
        for (IAction action : actions) {
            action.execute();
        }
    }

}
